﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;

using System.Text;
using System.Windows.Forms;
using Itegracion.Framework.Forms;
using System.Text.RegularExpressions;

namespace Itegracion.iAlmacen.Forms
{
    public partial class fmConstante : fmMantenimiento
    {   
        public fmConstante()
        {
            InitializeComponent();
            Titulo = "Administración de Tipos";
            Subtitulo = "Gestiona todos los tipos del Sistema";
        }

        protected override void OnAddFields(DataGridView listado, ref ucEdicion propiedades)
        {
            listado
                .AddTextBoxColumn("Id","rowid", 50)
                .AddTextBoxColumn("Codigo", 200)
                .AddTextBoxColumn("Oid", "id", 50)
                .AddTextBoxColumn("Nombre", 200);
            propiedades = new ucConstante();
        }
        protected override void OnLoadData(DataGridView listado)
        {
            _("Itegracion.iAlmacen", "Constante", "TraerListado")
                .Out(listado);
        }
        protected override void OnEdit(string id, DataGridViewCell cell, ucEdicion propiedades)
        {
            ucConstante uc = (ucConstante)propiedades;
            _("Itegracion.iAlmacen", "Constante", "Traer", cell)
                .Out(uc.tbID, uc.tbCodigo, uc.tbOid, uc.tbNombre);
        }
        protected override void OnNew(ucEdicion propiedades)
        {   
        }
        protected override bool AreDataValid(ModoMantenimiento modo, ucEdicion propiedades)
        {
            ucConstante uc = (ucConstante)propiedades;
            if (!Regex.IsMatch(uc.tbCodigo.Text, @"^[a-zA-Z]+$"))
                return Error(uc.tbCodigo, "Por favor, Ingrese un Codigo correcto. Ejemplo: TipoDocumento");
            if (!Regex.IsMatch(uc.tbOid.Text, @"^[0-9]+$"))
                return Error(uc.tbOid, "Por favor, Ingrese un Identificador Numerico. Ejemplo: 2");
            if (!Regex.IsMatch(uc.tbNombre.Text, @"^[a-zA-Z ]+$"))
                return Error(uc.tbNombre, "Por favor, Ingrese un Nombre Adecuado. Ejemplo: Boleta de Venta");

            return true;
        }
        protected override void OnSave(object id, ModoMantenimiento modo, ucEdicion propiedades)
        {
            ucConstante uc = (ucConstante)propiedades;
            Element rpta = new Element();
            if (modo == ModoMantenimiento.Nuevo)
            {
                _("Itegracion.iAlmacen", "Constante", "Insertar", uc.tbID, uc.tbCodigo, uc.tbOid, uc.tbNombre)
                    .Out(rpta);
            }
            if (modo == ModoMantenimiento.Edicion)
            {
                _("Itegracion.iAlmacen", "Constante", "Modificar", uc.tbID, uc.tbCodigo, uc.tbOid, uc.tbNombre)
                    .Out(rpta);
            }
        }
        protected override bool OnDelete(string id, DataGridViewCell cell)
        {
            Element rpta = new Element();
            _("Itegracion.iAlmacen", "Constante", "Eliminar", cell)
                .Out(rpta);
            return true;
        }
    }
}
